class CQueue {
private:
    stack<int> q_push, q_pop;
public:
    CQueue() {

    }
    
    void appendTail(int value) {
        q_push.push(value);
    }
    
    int deleteHead() {
        if(q_push.empty() && q_pop.empty())return -1;
        else {
            if(q_pop.empty()){
                while(!q_push.empty()){
                    q_pop.push(q_push.top());
                    q_push.pop();
                }
            }
            int temp = q_pop.top();
            q_pop.pop();
            return temp;
        }
    }
};

//2021.4.9
/**
 * 入就直接入 push 栈
 * 出的时候，pop 栈不空直接出
 * 否则把 push 栈中的东西都扔到 pop 栈中。
 * 时间效率是 O(1) 的。
 */